cli: Fix plan diff for sensitive nested attributes #30825
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When rendering diffs for resources which use nested attribute types, we must cope with collections backing those attributes which are entirely sensitive. The most common way this will be seen is through sensitive values being present in sets, which will result in the entire set being marked sensitive.
This approach fixes the crash by entirely omitting sensitive collections from the diff output. For some situations this is reasonable—for example, a
list(string)
which is populated by asensitive
variable should be elided from user view. In other use cases, notably set-backed nested attributes, this is likely to be counter-intuitive. Unfortunately, given how cty copes with marks on sets, I don't see any alternative at this time.Fixes #30824.